home *** CD-ROM | disk | FTP | other *** search
- {
- CHKBKRCN.PAS
-
- Checking Account Statement Analyzer
-
- by
-
- Gordon Burnham
- }
-
- program CHECKBOOK;
-
- type
- aCredit = array [1..200] of real;
- aDebit = array [1..100] of real;
- aOut = array [1..50] of real;
- aCstrng = array [1..200] of string;
- aDstrng = array [1..100] of string;
- aOstrng = array [1..50] of string;
-
- var
- cr : aCredit; {credit array}
- dr : aDebit; {debit array}
- outst : aOut; {outstanding check array}
- c_str : aCstrng; {descriptive strings}
- d_str : aDstrng;
- o_str : aOstrng;
- i_bal, {initial balance}
- charges,
- interest,
- cr_bal,
- dr_bal,
- o_bal, {balance outstanding checks}
- real_bal, {actual checkbook balance}
- stmt_bal : real; {statement balance}
- oLen, {outstanding check array length}
- cLen, {credit array length}
- dLen :integer; {debit array length}
-
- procedure SKIP (Lines: integer);
-
- var
- i : integer;
- begin
- for i := 1 to Lines do
- writeln
- end;
-
-
- procedure CHECKS;
-
- var
- i : integer;
- begin
- skip (3);
- writeln ('Enter checks written during accounting period.');
- skip (2);
- writeln ('Enter 0 to "Check Number" to exit.');
- skip (2);
- loop
- writeln;
- write ('Check Number: ');
- readln (c_str[cLen]);
- exit if c_str[cLen] = '0';
- write (' Amount: ');
- readln (cr[cLen]);
- cLen := cLen + 1;
- end; {loop}
- end; {CHECKS}
-
-
- procedure DEPOSITS;
-
- var
- i : integer;
- begin
- skip (3);
- writeln ('Enter deposits made during accounting period.');
- skip (2);
- writeln ('Enter 0 to "Date" to exit.');
- skip (2);
- loop
- writeln;
- write ('Date of deposit: ');
- readln (d_str[dLen]);
- exit if d_str[dLen] = '0';
- write (' Amount: ');
- readln (dr[dLen]);
- dLen := dLen + 1;
- end; {loop}
- end; {DEPOSITS}
-
-
- procedure OUTSTAND;
-
- var
- i : integer;
- begin
- skip (3);
- writeln ('Enter outstanding checks.');
- skip (2);
- writeln ('Enter 0 to "Check Number" to exit.');
- skip (2);
- loop
- writeln;
- write ('Check Number: ');
- readln (o_str[oLen]);
- exit if o_str[oLen] = '0';
- write (' Amount: ');
- readln (outst[oLen]);
- oLen := oLen + 1;
- end; {loop}
- end; {OUTSTAND}
-
-
- procedure COMPUTE;
-
- var
- i : integer;
- begin
- cr_bal := 0;
- dr_bal := 0;
- o_bal := 0;
- for i := 1 to cLen do
- cr_bal := cr_bal + cr[i];
- for i := 1 to dLen do
- dr_bal := dr_bal + dr[i];
- for i := 1 to oLen do
- o_bal := o_bal + outst[i];
- real_bal := i_bal + dr_bal - cr_bal + interest - charges;
- stmt_bal := real_bal + o_bal;
- end; {COMPUTE}
-
-
- procedure PRINT;
-
- var
- i : integer;
- f : text;
-
- procedure SKIPP (Lines : integer);
-
- var
- i : integer;
- begin
- for i := 1 to Lines do
- writeln (f);
- end; {SKIPP
-
- {*}
-
- procedure COL (blanks : integer);
-
- var
- i : integer;
- begin
- for i := 1 to Blanks do
- write (f,' ');
- end; {COL
-
- {*}
-
- begin {Print}
- skip (8);
- writeln (' printing output');
- skip (5);
- rewrite (f, 'LST:');
- skipp (1);
- Col (10);
- writeln (f, ' RECONCILIATION OF BANK STATEMENT');
- skipp (2); Col (10);
- write (f, 'Initial balance................................. ');
- writeln (f, i_bal:8:2);
- skipp (1); Col (10);
- write (f, 'Bank service charges............................ ');
- writeln (f, charges:8:2);
- skipp (1); Col (10);
- write (f, 'Interest........................................ ');
- writeln (f, interest:8:2);
- skipp (1); Col (14);
- writeln (f, ' CHECKS');
- { 1 2 3 4 5 }
- { 12345678901234567890123456789012345678901234567890 }
- Col (14); writeln (f, 'Check Number Amount');
- for i := 1 to cLen do
- begin
- Col (14);
- write (f, c_str[i]:10);
- col (30);
- writeln (f, cr[i]:8:2)
- end; {i}
- skipp (1); Col (14);
- writeln (f, 'Total.................................. ',cr_bal:8:2);
- skipp (1); Col (14);
- writeln (f, ' DEPOSITS');
- Col (14); writeln (f, 'Date Amount');
- for i := 1 to dLen do
- begin
- Col (14);
- write (f, d_str[i]:10);
- col (30);
- writeln (f, dr[i]:8:2)
- end; {i}
- skipp (1); Col (14);
- writeln (f, 'Total.................................. ',dr_bal:8:2);
- skipp (1); Col (14);
- writeln (f, ' OUTSTANDING CHECKS');
- Col (14); writeln (f, 'Check Number Amount');
- for i := 1 to oLen do
- begin
- Col (14);
- write (f, o_str[i]:10);
- col (30);
- writeln (f, outst[i]:8:2)
- end; {i}
- skipp (1); Col (14);
- writeln (f, 'Total.................................. ',o_bal:8:2);
- skipp (2); Col (18);
- writeln (f, 'Actual Checkbook Balance...... ',real_bal:8:2);
- skipp (2); Col (18);
- writeln (f, 'Bank Statement Balance........ ',stmt_bal:8:2);
- writeln (f, chr(12))
- end; {PRINT}
-
-
- begin {main}
- cLen := 1;
- dLen := 1;
- oLen := 1;
- cr_bal := 0;
- dr_bal := 0;
- charges := 0;
- interest := 0;
- skip (4);
- writeln (' Checkbook Reconciliation');
- writeln;
- writeln (' by');
- writeln;
- writeln (' Gordon Burnham');
- skip (2);
- write ('Initial balance: ');
- readln (i_bal);
- writeln;
- write (' Bank charges: ');
- readln (charges);
- writeln;
- write (' Interest: ');
- readln (interest);
- checks;
- cLen := cLen - 1;
- deposits;
- dLen := dLen - 1;
- outstand;
- oLen := oLen - 1;
- compute;
- print
- end. {main}
-
-
-